import { useParams } from 'common' import { useRouter } from 'next/router' import { useEffect } from 'react' import { useUnifiedLogsPreview } from '@/components/interfaces/App/FeaturePreview/FeaturePreviewContext' import { UnifiedLogs } from '@/components/interfaces/UnifiedLogs/UnifiedLogs' import DefaultLayout from '@/components/layouts/DefaultLayout' import { ProjectLayout } from '@/components/layouts/ProjectLayout' import { UnknownInterface } from '@/components/ui/UnknownInterface' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' import type { NextPageWithLayout } from '@/types' export const LogPage: NextPageWithLayout = () => { const router = useRouter() const { ref } = useParams() const logsEnabled = useIsFeatureEnabled('logs:all') const { isEnabled: isUnifiedLogsEnabled, isLoading } = useUnifiedLogsPreview() useEffect(() => { if (logsEnabled && !isLoading && !isUnifiedLogsEnabled && ref) { router.replace(`/project/${ref}/logs/explorer`) } // eslint-disable-next-line react-hooks/exhaustive-deps }, [logsEnabled, isLoading, isUnifiedLogsEnabled, ref]) if (!logsEnabled) { return ( ) } if (isUnifiedLogsEnabled) { return ( {/* Omit the generic product segment here; project/org context already makes the route clear. */} ) } return null } // Don't use getLayout since we're handling layouts conditionally within the component LogPage.getLayout = (page) => page export default LogPage